package com.qwc.blog.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qwc.blog.entity.User;
import com.qwc.blog.entity.vo.user.*;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author qwc
 * @since 2021-10-15
 */
public interface IUserService extends IService<User> {

    /**
     * 根据指定username获取用户
     *
     * @param username
     * @return
     */
    User getUser(String username);

    /**
     * 修改个人信息
     *
     * @param user
     * @param dto
     */
    void updateProfile(User user, PutProfileDto dto);

    /**
     * 更新密码
     *
     * @param user
     * @param dto
     */
    void updatePassword(User user, UpdatePasswordDto dto);

    /**
     * 上传头像
     *
     * @param user
     * @param avatar
     */
    void updateAvatar(User user, String avatar);

    /**
     * 获取用户列表
     *
     * @param dto
     * @return
     */
    Page<User> getUserList(UserListReqDto dto);

    /**
     * 添加用户
     *
     * @param dto
     * @param currentUser
     */
    void addUser(AddUserDto dto, User currentUser);

    /**
     * 更新用户信息
     *
     * @param user
     */
    void updateUser(User user);

    /**
     * 修改指定用户的密码
     *
     * @param user
     */
    void resetPassword(User user);
}
